package cn.codesugar.service

import android.app.job.JobParameters
import android.app.job.JobService
import android.util.Log
import kotlin.concurrent.thread

/**
 * C:\Users\weidong.tang>adb shell
 * shell@rolex:/ $ dumpsys battery unplug
 * shell@rolex:/ $ dumpsys deviceidle enable
 * shell@rolex:/ $ dumpsys deviceidle force-idle
 * Now forced in to deep idle mode
 * shell@rolex:/ $  dumpsys deviceidle disable
 * Deep idle mode disabled
 */

private const val TAG = "MyJobService"

class MyJobService : JobService() {

    companion object {
        const val MY_JOB_SERVICE_JOB_ID = 0 // 默认该jobService的id
    }

    override fun onStartJob(params: JobParameters?): Boolean {
        /**
         * 位于主线程
         * 即便开启线程，执行时长也不可以大于10分钟，否则系统自动强制销毁Job
         */
        Log.e(TAG, "onStartJob() executed")
//        return false // 表示该任务已经全部做完，系统会解绑JobService,最终调用OnDestroy(),相当于自己调用JobFinished()
        return true // 表示任务已经启动成功，但还没有全部做完，此时可以在任务完成后应用自行调用jobFinish()方法，强制停止后也会继续启动
    }

    override fun onStopJob(params: JobParameters?): Boolean {
        Log.e(TAG, "onStopJob() executed")
        return true // 表示任务应该计划在下次继续
//        return false // 表示不管怎样，事情就到此结束吧，不要计划下次了
    }

    override fun onCreate() {
        super.onCreate()
        Log.e(TAG, "onCreate() executed")
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.e(TAG, "onDestroy() executed")
    }

}